#ifndef PCB_HPP
#define PCB_HPP

#include <array>
#include <cstddef>

template <size_t N> class pcb {
public:
  pcb();
  size_t get_n_resource();
  // bool request(std::array<size_t, N> request, std::array<size_t, N>
  // &resources);

  std::array<size_t, N> max;
  std::array<size_t, N> allocation;
  std::array<size_t, N> need;

private:
  size_t n_resource;
};

template <size_t N> pcb<N>::pcb() { this->n_resource = N; }

template <size_t N> size_t pcb<N>::get_n_resource() { return this->n_resource; }

// template <size_t N>
// bool pcb<N>::request(std::array<size_t, N> request,
//                      std::array<size_t, N> &resources) {
//   if (arr_le(request, resources)) {
//     return false;
//   }
//   return true;
// }

#endif